The Processes / ProcessH screen presents the locations within the process code where CPU time is spent. This information is obtained from the MEASURE ProcessH entity.
While a process has a busy time, the areas of code where it spends its execution time are of interest to developers and may reveal locations that are not performing efficiently. Generally, only a developer with access to the source code can interpret the meaning of the values given on this screen.
Three types of Measurements are available: User, System, or Both.
User code generally is the area of the program the developer has actually coded. This includes the main object file plus all loadfiles (i.e. SLRs and DLLs) not located in $SYSTEM.SYSnn or $SYSTEM.ZDLL.
System code is the area spent in the operating system supplied routines and is defined as the loadfiles (i.e. SLRs and DLLs) located in $SYSTEM.SYSnn or $SYSTEM.ZDLL.
Both are a combination of User and System.
The image below shows some of the additional procedure information obtained with Both is selected.
Measuring the System code may be an interesting exercise, but will usually result in reporting locations that don't make much sense. This is due to the fact that documentation on internal operating system routines are not published. On occasion, the code area may have a name that directly relates to a system call initiated by the developer (such as FILE_SETKEY_ (position within an Enscribe file) or malloc (a C memory allocation routine)).
A Code Range with a name of CODERANGE (sample highlighted in yellow above) followed by hexadecimal numbers are locations where time was spent but a procedure (or function) name was not available. More recent releases of MEASURE seem to collect information on the entire process even if only the user area is selected. The Code Range may indicate system code, SRL's or DDL's.
A Code Range is an individual function or procedure within a program. Programs are typically comprised of many functions or procedures. Exceptions to this are COBOL and Java which is interpreted code not supported by this MEASURE entity.
A Code Space is a logical grouping of one or more Code Ranges. This typically could be thought of as all of the Code Ranges within program file comprise a Code Space. However, a process accesses many Code Spaces as each SRL or DLL and the Operating System itself are divided into Code Spaces.
The column CR Proc Busy Percent reports the percentage of the total process busy time the code range was active. This column is the best overall indicator to the activity of a Code Range.
This screen continually gathers data in increasing increments. The initial sample is of a short period of time increasing to longer periods of time. This allows a relatively quick display of initial samples while easing the system load if the measurement is left to run. Internally, MOMI combines data from each measurement and displays the seamless results. You can leave this measurement running for hours to gather data, which is sometimes required.
Security Note: The User ID that MOMI operates under must be able to READ the object file(s) of the process under measurement. MEASURE requires this information in order to obtain procedure / function names and code range locations.